package xyz.zcq.zcqrpc.easy.registry;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 本地服务实现注册器
 */
public class LocalImplRegistry {

    /**
     * 服务实现映射，存储注册的服务实现
     * key：服务名称，value：服务实现类
     */
    private static final Map<String, Class<?>> serviceImplMap = new ConcurrentHashMap<>();

    /**
     * 注册服务实现
     *
     * @param serviceName 服务名称
     * @param implClazz   服务实现的类对象
     */
    public static void register(String serviceName, Class<?> implClazz) {
        serviceImplMap.put(serviceName, implClazz);
    }

    /**
     * 获取服务实现
     *
     * @param serviceName 服务名称
     * @return 服务实现类对象
     */
    public static Class<?> get(String serviceName) {
        return serviceImplMap.get(serviceName);
    }

    /**
     * 删除服务实现
     *
     * @param serviceName 服务名称
     */
    public static void remove(String serviceName) {
        serviceImplMap.remove(serviceName);
    }

}
